#include "login.h"
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QDebug>


login::login(QWidget *parent)
    : QWidget(parent)
{
    // 设置窗口
    this->setWindowTitle("游戏登录");
    this->setFixedSize(500, 300);

    // 请登录标题
    QLabel* titleLabel = new QLabel("请登录", this);
    titleLabel->setFont(QFont("黑体", 25, QFont::Black));
    titleLabel->move(180, 20);

    // 账号
    QLabel* accLabel = new QLabel("账号：", this);
    accLabel->setFont(QFont("黑体", 14));
    accLabel->move(80, 95);

    QLineEdit* accEdit = new QLineEdit(this);
    accEdit->resize(280, 40);
    accEdit->move(150,90);
    accEdit->setPlaceholderText("账号名/手机号/邮箱");

    // 密码
    QLabel* pwdLabel = new QLabel("密码：", this);
    pwdLabel->setFont(QFont("黑体", 14));
    pwdLabel->move(80, 145);

    QLineEdit* pwdEdit = new QLineEdit(this);
    pwdEdit->resize(280, 40);
    pwdEdit->move(150,140);
    pwdEdit->setPlaceholderText("密码");
    pwdEdit->setEchoMode(QLineEdit::Password);

    QPushButton* btn_mw = new QPushButton("明文", this);
    btn_mw->resize(50, 40);
    btn_mw->move(380, 140);

    // 重置和登录按钮
    QPushButton * btn_reset = new QPushButton("重置", this);
    btn_reset->resize(80, 50);
    btn_reset->move(150, 220);

    QPushButton * btn_login = new QPushButton("登录", this);
    btn_login->resize(80, 50);
    btn_login->move(310, 220);

    // 任务1：当用户点击“重置”按钮时，清空用户填写的账号和密码
    connect(btn_reset, &QPushButton::clicked, [accEdit, pwdEdit](){
        accEdit->clear();
        pwdEdit->setText("");
    });

    // 任务2：当用户点击“登录”按钮时，验证账号(admin)和密码(123456)，在控制台输出验证结果
    connect(btn_login, &QPushButton::clicked, [accEdit, pwdEdit](){
        // 1.获取用户输入的账号和密码
        QString account = accEdit->text();
        // qDebug() << account;
        QString password = pwdEdit->text();
        // 2.判断账号和密码
        if(account == "admin" && password == "123456")
        {
            qDebug() << "登录成功";
        }
        else
        {
            qDebug() << "账号或密码错误";
        }
    });
    // 任务3：窗口启动时，密码框默认的输出方式为password，按钮提示“明文”；
    //       当点击“明文”按钮时，密码框从密文方式切换为明文方式，按钮文字改为“密文”
    //       再次点击时，密码框从明文方式切换为密文，按钮文字改为“明文”
    connect(btn_mw, &QPushButton::clicked, [pwdEdit, btn_mw](){
        if (pwdEdit->echoMode() == QLineEdit::Password)
        {
            pwdEdit->setEchoMode(QLineEdit::Normal);
            btn_mw->setText("密文");
        }
        else
        {
            pwdEdit->setEchoMode(QLineEdit::Password);
            btn_mw->setText("明文");
        }
    });


}

login::~login()
{

}
